#!/bin/bash
# build mockcpp and it's tests, and at last run all tests.

# $1  --- compiler name  (GNU)
# $2  --- [optional] compiler major version  (The first part of cxx compiler version)

# You can set PREBUILT_TESTNGPP_PATH to your prebuilt mockcpp and testngpp path, if you want to use you own prebuilt tools.
# such as: export USER_TESTNGPP_PATH=/home/sinojelly/test_tools/testngpp_install

# fast fail
set -e

. "tests/testngpp/build_functions.sh"

MY_OS_NAME=""
MY_CXX_COMPILER_NAME=""
MY_CXX_COMPILER_MAJOR_VERSION=""
CMAKE_COMPILER_PARAM=""
MAKE_BUILD_TYPE=""

AUTO_COMPILER="GNU"  #  $1
AUTO_CXX_VER=`gcc -dumpversion | awk -F.  '{print $1}'`  # $2
InitEnviroment $AUTO_COMPILER $AUTO_CXX_VER

BUILD_DIR="build_$MY_CXX_COMPILER_NAME"

OS_COMPILER="$MY_OS_NAME/$MY_CXX_COMPILER_NAME/$MY_CXX_COMPILER_MAJOR_VERSION"

echo "OS_COMPILER in Shell : $OS_COMPILER"

RUN_USER_TESTNGPP_PATH=""
CMAKE_USER_TESTNGPP_PATH=""
if [ -d $USER_TESTNGPP_PATH ]; then
RUN_USER_TESTNGPP_PATH=$USER_TESTNGPP_PATH
CMAKE_USER_TESTNGPP_PATH="-DCMAKE_USER_TESTNGPP_PATH=$USER_TESTNGPP_PATH"
fi

cmake  -S . -B $BUILD_DIR/project
cmake  -S tests/ut -B $BUILD_DIR/ut $CMAKE_USER_TESTNGPP_PATH
CompileProject $MY_CXX_COMPILER_NAME $BUILD_DIR/project
CompileProject $MY_CXX_COMPILER_NAME $BUILD_DIR/ut

RunTestsFromPrebuiltTools $BUILD_DIR ut $MAKE_BUILD_TYPE $OS_COMPILER $RUN_USER_TESTNGPP_PATH
